public class Process 
 {
  private int            idProcess;
  private HorlogeLamport horloge;
  private Pere           pere;
  private Tampon         tamponDeTrace;
  private Client         client;
  private Tampon         tamponDeReception;
  private Recepteur      recepteur;
  private Tampon         tamponDEmission;
  private Emetteur       emetteur;
  private int            numPortRecepeteur;
  private int            numPortEmmeteur;
  private int            numPortServeurSVG = 8080;

  public Process(int _numProcess, int _numPortRecepteur, int _numPortEmetteur)
   {
    this.idProcess         = _numProcess;
    this.numPortRecepeteur = _numPortRecepteur;
    this.numPortEmmeteur   = _numPortEmetteur;

    horloge = new HorlogeLamport(this);

    tamponDEmission   = new Tampon (this);
    tamponDeReception = new Tampon (this);
    tamponDeTrace     = new Tampon (this);
	
     System.out.println (this.idProcess + " : Creation du processus");
   }

  public void lanceReception()
   {
    recepteur = new Recepteur(this, numPortRecepeteur);
    System.out.println (this.idProcess + " : Creation du recepteur");
    recepteur.start();
   }

  public void lanceEmission()
   {
    emetteur = new Emetteur(this, numPortEmmeteur);
    System.out.println (this.idProcess + " : Creation de l'emetteur");
    emetteur.start();
   }

  public void lanceClient()
   {
    client = new Client(this, numPortServeurSVG);
    client.start();
    System.out.println (this.idProcess + " : Creation du client");
   }

  public void lancePere()
   {
    pere = new Pere(this);
    System.out.println (this.idProcess + " : Creation du pere");
    pere.start();
   }

  public int getNumProcess()
   {
    return this.idProcess;
   }

  public HorlogeLamport getHorloge()
   {
    return this.horloge;
   }

  public Pere getPere()
   {
    return this.pere;
   }

  public Tampon getTamponDeTrace()
   {
    return this.tamponDeTrace;
   }

  public Client getClient()
   {
    return this.client;
   }

  public Tampon getTamponDeReception()
   {
    return this.tamponDeReception;
   }

  public Recepteur getRecepteur()
   {
    return this.recepteur;
   }

  public Tampon getTamponDEmission()
   {
    return this.tamponDEmission;
   }

  public Emetteur getEmetteur()
   {
    return this.emetteur;
   }
 }
